package com.yungu.swift.order.model.dto;

import com.yungu.swift.base.model.BaseDto;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * Copyright © 厦门云谷互联信息有限公司 2018-2020 All Right Reserved
 * 订单费用DTO
 *
 * @author Zerrion
 * @version 1.0.0-RELEASE
 * @since 2018-07-03 15:24
 */
@Data
public class OrderFareDto extends BaseDto {

    /****/
    private String orderUuid;

    /**
     * 车型计价规则uuid
     **/
    private String carModelValuationUuid;

    /**
     * 实际行驶里程
     **/
    private Double tripDistance;

    /**
     * 夜间行驶开始里程
     **/
    private Double startNightMileage;

    /**
     * 夜间结束里程
     **/
    private Double endNightMileage;

    /**
     * 实际行驶时长（毫秒）
     **/
    private Integer tripDuration;

    /**
     * 超时等待时长
     **/
    private Integer waitDuration;

    /**
     * 等待费用
     **/
    private Double waitFare;

    /**
     * 起步里程
     **/
    private Double startTrip;

    /**
     * 起步时长（毫秒）
     **/
    private Integer startDuration;

    /**
     * 起步费
     **/
    private Double startFare;

    /**
     * 调度费
     **/
    private Double tip;

    /**
     * 打表来接费用
     **/
    private Double meteredFare;

    /**
     * 超出里程费
     **/
    private Double overTripFare;

    /**
     * 超出时长费用
     **/
    private Double overTimeFare;

    /**
     * 回空补贴
     **/
    private Double haulBackFare;

    /**
     * 夜间补贴
     **/
    private Double nightFare;

    /**
     * 高峰溢价倍率（1.0 - 9.9）
     **/
    private Double highPremiumRate;

    /**
     * 高峰溢价费用
     **/
    private Double highPremiumFare;

    /**
     * 附加服务费用
     **/
    private Double serviceFare;

    /**
     * 优惠券价格
     **/
    private Double couponFare;

    /**
     * （后台）调整价格
     **/
    private Double adjustFare;

    /**
     * （后台）调整理由
     **/
    private String adjustReason;

    /**
     * 订单总费用（=司机收入=各费用之和*高峰溢价率+附加服务费等+（后台）调整价格）
     **/
    private Double totalFare;

    /**
     * 乘客实际支付金额（订单总费用-优惠券等）
     **/
    private Double actualFare;

    /**
     * 司机抵达上车地点时间
     **/
    private Date driArrTime;

    /**
     * 接到乘客时间（行程开始时间）
     **/
    private Date pasArrTime;

    /**
     * 到达目的地时间
     **/
    private Date arriveTime;

    //额外数据
    /**
     * 起步时长（毫秒）
     **/
    private Integer beyondTimeLength;

    /**
     * 超出里程（公里）
     **/
    private Double beyondTrip;

    /**
     * 夜间里程（公里）
     **/
    private Double nightTrip;

    /**
     * 回空里程（公里）
     **/
    private Double haulBackTrip;

    /**
     * 取消费用
     **/
    private Double cancelFare;

    /**
     * 指定司机费用
     **/
    private Double assignDriverFare;

    /**
     * 已支付类型
     **/
    private Integer payType;

    /**
     * 司机接单时间
     **/
    private Date driReceiveTime;

    /**
     * 司机出发时间
     **/
    private Date driDepartTime;

    /**
     * 总等待乘客时间
     */
    private Integer waitTimeSeconds;
    /**
     * 空驶里程（司机出发到接到乘客）
     */
    private Double waitMile;
    /**
     * 支付机构
     */
    private String payOrganization;
    /**
     * 支付时间
     */
    private Date payTime;
    /**
     * 计划价格（元）
     */
    private Double planFare;
    /**
     * 计划里程（公里）
     */
    private Double planTrip;

    //2018-08-06 --by yun
    /**
     * 订单金额（元）
     */
    private BigDecimal orderFare;
    /**
     * 确认费用时间
     */
    private Date confirmTime;

    /**
     * 调价人uuid
     *
     * @return
     */
    private String adjustUser;

    /**
     * 高速费
     **/
    private Integer highwayFare;

    /**
     * 路桥费
     **/
    private Integer roadBridgeFare;

    /**
     * 其他费
     **/
    private Integer otherFare;

    private String validJson;

    /**
     * 测量里程
     **/
    private BigDecimal measureDistance;

    /**
     * 测量费用
     **/
    private BigDecimal measureFare;

    /**
     * 最新的订单费用
     **/
    private BigDecimal latestOrderFare;

    /**
     * 最新里程
     **/
    private BigDecimal latestDistance;

    /**
     * 确认费用时候的订单费用
     **/
    private BigDecimal confirmOrderFare;

    /**
     * 手机上传的高德里程
     */
    private Double gaodeDistance;

    /**
     * 货件加价
     */
    private Double parcelRaisePrice;

    /**
     * 起点特殊区域加价
     */
    private Double originRaisePrice;

    /**
     * 终点特殊区域加价
     */
    private Double destRaisePrice;

    /**
     * 夜间加价
     */
    private Double nightRaisePrice;

    /**
     * 超标行李费
     */
    private Integer excessBaggageFare;
}
